home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Updaters / WhiteCap 3.0.4 / WhiteCap Source.sit / WhiteCap Source / Common / EgOSUtils.h < prev    next >
Text File  |  1999-07-31  |  4KB  |  100 lines

  1.  
  2. #ifndef _EGOSUTILS_
  3. #define _EGOSUTILS_
  4.  
  5. #include "CEgFileSpec.h"
  6.  
  7.  
  8. #if EG_MAC
  9. #include <Quickdraw.h>
  10. #endif
  11.  
  12.  
  13. class UtilStr;
  14. class CEgFileSpec;
  15. class CEgErr;
  16.  
  17. class EgOSUtils {
  18.             
  19.                         
  20.     public:
  21.         //             Call this once at program startup
  22.         static void                    Initialize();
  23.     
  24.         //    Post:    Assigns spec info for the next file in the dir specified by <folderSpec>.  If the directory doesn't exist or there
  25.         //            aren't any more files, <false> is returned.  If a next file is found, <true> is returned and <outSpec> contains a spec to that file.
  26.         //            If inFolders is true, only folders are retuned
  27.         static bool                    GetNextFile( const CEgFileSpec& folderSpec, CEgFileSpec& outSpec, bool inStartOver, bool inFolders );
  28.     
  29.         //            After Initialize, these contain the screen pixels per inch
  30.         static int                    sXdpi;
  31.         static int                    sYdpi;
  32.         
  33.         //     Post:    This static method will display the given C string in a window with an OK button.
  34.         static void                    ShowMsg( const char* inMsg );
  35.         static void                    ShowMsg( const UtilStr& inMsg );
  36.         
  37.         //    Post:    Prints <inMsg> in a dialog box with an "OK" button and a "cancel" button.  <true>
  38.         //            is returned if the use selects the "OK" button
  39.         static bool                    AreYouSure( const UtilStr& inMsg );
  40.         static bool                    AreYouSure( const char* inMsg );
  41.         
  42.         //    Post:    Asks "Save changes to '<inName>' before closing?"
  43.         //    Note:    Returns     0 if Cancel button, 1 for OK, and -1 for Don't Save
  44.         static int                    AskSaveChanges( const UtilStr& inName );
  45.         static int                    AskSaveChanges( const char* inName );
  46.     
  47.         //    Post:    With the file dialog, this prompts the user for a file name, etc.  If the func returns <true>,
  48.         //            <outSpec> contains the file spec the user just entered
  49.         static bool                    AskSaveAs( const char* inPrompt, const UtilStr& inDefaultName, CEgFileSpec& outSpec, long inFileType = 0 );
  50.         static bool                    AskSaveAs( const char* inPrompt, const char* inDefaultName, CEgFileSpec& outSpec, long inFileType = 0 );
  51.     
  52.         //    Post:    With the file dialog, this prompts the user to select a file..  If the func returns <true>,
  53.         //            <outSpec> contains the file spec the user just entered.
  54.         //    Note:    Only file of type <inFileType> are visible. Zero means to accept all files types.
  55.         static bool                    AskOpen( const char* inPrompt, CEgFileSpec& outSpec, long inFileType = 0 );
  56.  
  57.         //    Post:    Puts the error message in a message box on the screen, saying 
  58.         //            "Error reading/writing "inName" -- inErrMsg
  59.         //            <wasReading> determines chooses the word "reading" vs. "writing"
  60.         static void                    ShowFileErr( const UtilStr* inName, CEgErr& inErr,             bool wasReading );
  61.         static void                    ShowFileErr( const UtilStr* inName, char* inErrMsg,         bool wasReading );
  62.         static void                    ShowFileErr( const CEgFileSpec& inFileSpec, CEgErr& inErr,    bool wasReading );
  63.  
  64.         //    Post:    Makes the computer beep    
  65.         static void                    Beep();
  66.         
  67.         //    Pre:    Designed to be called continously during a long process.
  68.         //    Post:    Displays a spinning curor after a certain period of time.
  69.         static void                    SpinCursor();
  70.         
  71.         //    Post:    Call this to restore the cursor if it's been altered (ie, after a SpinCursor).
  72.         //    Note:    If This proc is installed in the main event loop, you can call SpinCursor() whenever things are intensive
  73.         static void                    ResetCursor()                                                { if ( sLastCursor >= 0 ) EgOSUtils::ShowCursor();  }
  74.         
  75.         //     Post:    Hides/Shows the mouse cursor.
  76.         static void                    ShowCursor();
  77.         static void                    HideCursor();
  78.         
  79.         //     Returns the current time in milliseconds since the system start.
  80.         static long                    CurTimeMS();
  81.         
  82.         //    Returns the global cords of the mouse
  83.         static void                    GetMouse( Point& outPt );
  84.         
  85.         //    Post:    Returns a random number from <min> to <max>, inclusive.
  86.         static long                 Rnd( long min, long max );
  87.         
  88.         //    Post:    Reverses the byte order of the given long
  89.         static unsigned long        RevBytes( unsigned long inNum );
  90.         
  91.         // Is the directory/folder of this app/lib
  92.         static CEgFileSpec            sAppSpec;
  93.         
  94.     protected:
  95.         static long                    sLastCursor;
  96.         static long                    sLastCursorChange;
  97.  
  98. };
  99.  
  100. #endif